2020-2021 Sunseeker Telemetry and Lighting System
rtc_ex1_countmode.c
Go to the documentation of this file.
1 /* --COPYRIGHT--,BSD
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * --/COPYRIGHT--*/
32 //******************************************************************************
59 //******************************************************************************
60 #include "driverlib.h"
61 #include "Board.h"
62 
63 //*****************************************************************************
64 //
65 //Interval time used for RTC
66 //
67 //*****************************************************************************
68 #define INTERVAL_TIME 32768
69 
70 void main (void)
71 {
72  WDT_A_hold(WDT_A_BASE);
73 
74  //Set LED1 to output direction
75  GPIO_setAsOutputPin(
76  GPIO_PORT_LED1,
77  GPIO_PIN_LED1
78  );
79 
80  /*
81  * Disable the GPIO power-on default high-impedance mode to activate
82  * previously configured port settings
83  */
84  PMM_unlockLPM5();
85 
86  //Set DCO FLL reference = REFO
87  CS_initClockSignal(
88  CS_FLLREF,
89  CS_REFOCLK_SELECT,
90  CS_CLOCK_DIVIDER_1
91  );
92 
93  //Set SMCLK = REFO
94  CS_initClockSignal(
95  CS_SMCLK,
96  CS_REFOCLK_SELECT,
97  CS_CLOCK_DIVIDER_1
98  );
99 
100  //Initialize RTC
101  RTC_init(RTC_BASE,
103  RTC_CLOCKPREDIVIDER_1);
104 
105  RTC_clearInterrupt(RTC_BASE,
106  RTC_OVERFLOW_INTERRUPT_FLAG);
107 
108  //Enable interrupt for RTC overflow
109  RTC_enableInterrupt(RTC_BASE,
110  RTC_OVERFLOW_INTERRUPT);
111 
112  //Start RTC Clock with clock source SMCLK
113  RTC_start(RTC_BASE, RTC_CLOCKSOURCE_SMCLK);
114 
115  //Enter LPM3 mode with interrupts enabled
116  __bis_SR_register(LPM0_bits + GIE);
117  __no_operation();
118 }
119 
120 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
121 #pragma vector=RTC_VECTOR
122 __interrupt
123 #elif defined(__GNUC__)
124 __attribute__((interrupt(RTC_VECTOR)))
125 #endif
126 void RTC_ISR (void)
127 {
128  switch (__even_in_range(RTCIV,2)){
129  case 0: break; //No interrupts
130  case 2: //RTC overflow
131  //Toggle LED1
132  GPIO_toggleOutputOnPin(
133  GPIO_PORT_LED1,
134  GPIO_PIN_LED1);
135  break;
136  default: break;
137  }
138 }
__no_operation()
#define INTERVAL_TIME
void main(void)
void RTC_ISR(void)